import axios from "axios";
import Vue from "vue";


axios.defaults.baseURL = 'http://localhost:3000';
axios.interceptors.request.use(
  config => {
    // 为请求头对象，添加 Token 验证的 Authorization 字段
    // config.headers.Authorization = window.sessionStorage.getItem("token");
    return config;
  },
  error => {
    return Promise.reject("catch", error);
  }
);


axios.interceptors.response.use(
  response => {
    return response;
  },
  error => {
    // console.log("请求失败", error.response);
    // // return Promise.resolve(error);
    // if (error.response.status) {
    //   switch (error.response.status) {
    //     // 403 无权限
    //     case 403:
    //       Message({
    //         message: "此账号无权限！",
    //         type: "warning",
    //         center: true
    //       });
    //       // 清除token
    //       sessionStorage.removeItem("token");
    //       // 跳转登录页面，并将要浏览的页面fullPath传过去，登录成功后跳转需要访问的页面
    //       setTimeout(() => {
    //         router.replace({
    //           path: "/login",
    //           query: {
    //             redirect: router.currentRoute.fullPath
    //           }
    //         });
    //       }, 1000);
    //       break;
    //     // 404请求不存在
    //     case 404:
    //       Message({
    //         message: `网络请求不存在`,
    //         type: "warning",
    //         center: true
    //       });
    //       break;
    //     // 参数错误
    //     case 400:
    //       Message({
    //         message: "输入的参数有误，请重新输入！",
    //         type: "warning",
    //         center: true
    //       });
    //       break;
    //     // 其他错误，直接抛出错误提示
    //     default:
    //       Message({
    //         message: error.response.data.message,
    //         type: "warning"
    //       });
    //   }
      return Promise.reject(error.response);
    // }
  }
);
axios.defaults.adapter = function(config) { //自己定义个适配器，用来适配uniapp的语法
    return new Promise((resolve, reject) => {
        // console.log(config)
        var settle = require('axios/lib/core/settle');
        var buildURL = require('axios/lib/helpers/buildURL');
        uni.request({
            method: config.method.toUpperCase(),
            url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),
            header: config.headers,
            data: config.data,
            dataType: config.dataType,
            responseType: config.responseType,
            sslVerify: config.sslVerify,
            complete: function complete(response) {
                // console.log("执行完成：", response)
                response = {
                    data: response.data,
                    status: response.statusCode,
                    errMsg: response.errMsg,
                    header: response.header,
                    config: config
                };
                settle(resolve, reject, response);
            }
        })
    })
}
export default axios;